cabal-version: 3.0
name:          monalog
version:       1.0.0
synopsis:
author:        goosedb
maintainer:    goosedb@yandex.ru

library
  ghc-options:      -Wall
  -- cabal-fmt: expand src
  exposed-modules:
    App
    Buffer
    Config
    Consts
    Copy.Native
    Copy.Osc52
    Handler
    Path
    Query
    Query.Eval
    Query.Parser
    SourceFormat.Csv
    SourceFormat.Json
    SourceFormat.Utils
    System
    Type.AppState
    Type.AvailableSpace
    Type.Config
    Type.Event
    Type.Field
    Type.Log
    Type.LogViewPosition
    Type.MaxWidth
    Type.Name
    Type.TBool
    Type.WidgetSize
    Type.With
    Ui
    Vty
    Widgets.Checkbox
    Widgets.Dialog.Handler
    Widgets.Dialog.Types
    Widgets.Dialog.Ui
    Widgets.Editor
    Widgets.Fields.Handler
    Widgets.Fields.Types
    Widgets.Fields.Ui
    Widgets.LogsView.Handler
    Widgets.LogsView.Types
    Widgets.LogsView.Ui
    Widgets.LogView.Handler
    Widgets.LogView.Types
    Widgets.LogView.Ui
    Widgets.Query.Handler
    Widgets.Query.Types
    Widgets.Query.Ui
    Widgets.Scrollbar.Horizontal
    Widgets.Scrollbar.Vertical
    Widgets.StatusBar.Handler
    Widgets.StatusBar.Types
    Widgets.StatusBar.Ui
    Widgets.Types

  build-depends:
    , aeson
    , attoparsec
    , attoparsec-aeson
    , base
    , base64-bytestring
    , brick                >=2.2 && <3.0
    , brick-skylighting
    , bytestring
    , cassava
    , conduit
    , containers
    , directory
    , effectful
    , filepath
    , fuzzy
    , generic-lens
    , jsonpath
    , lens
    , lens-aeson
    , megaparsec
    , mtl
    , parser-combinators
    , resourcet-effectful
    , scientific
    , skylighting
    , skylighting-core
    , stm
    , text
    , text-zipper
    , time
    , transformers
    , typed-process
    , vector
    , vty
    , vty-crossplatform
    , yaml

  if os(windows)
    build-depends: vty-windows >=0.2.0.2 && <0.3.0.0

  else
    build-depends:
      , unix
      , vty-unix

  hs-source-dirs:     src
  default-language:   GHC2021
  ghc-options:        -Wall
  default-extensions:
    AllowAmbiguousTypes
    BlockArguments
    ConstraintKinds
    DeriveAnyClass
    DeriveGeneric
    DuplicateRecordFields
    FlexibleContexts
    ImplicitParams
    ImportQualifiedPost
    LambdaCase
    MultiWayIf
    NamedFieldPuns
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    RecordWildCards
    StrictData
    TypeApplications
    TypeFamilies
    ViewPatterns

executable monalog
  main-is:          Main.hs
  build-depends:
    , base
    , lens
    , text
    , directory
    , generic-lens
    , monalog
    , optparse-applicative

  ghc-options:      -threaded -O2
  hs-source-dirs:   app
  default-language: Haskell2010
